<!--
  appId选择器，可选公众号或者小程序的appId，默认选择公众号
  可用与列表搜索条件或者表单页面
  使用方法：
  <gz-app-id-select v-model:value="appId"></gz-app-id-select>
  其中，v-model绑定到当前选择的appId
 -->
<template>
  <a-select :value="value" :options="vdata.appOptions" :placeholder="placeholder" @change="onChangeHandler" />
</template>

<script setup lang="ts">
import { defineProps, defineEmits, onMounted, reactive } from 'vue'
import { $apiAgentLiteGetList } from '@/api/proxy/programManage/liteBanner/index'

// 定义通知
const emits = defineEmits(['update:value'])

const props = defineProps({
  type: {
    type: Number,
    default: 1 // 1小程序 2公众号
  },
  value: {
    type: String,
    default: null
  },
  placeholder: {
    type: String,
    default: '请选择小程序'
  }
})

// 内部数据源
const vdata = reactive({
  appOptions: [], // 选项列表
})

onMounted(() => {
  getAppList()
})

// 小程序切换
function onChangeHandler(value) {
  emits('update:value', value)
}

// 请求小程序 公众号列表
async function getAppList() {
  const res = await $apiAgentLiteGetList({ type: props.type })
  vdata.appOptions = res.map(item => ({ label: item.name, value: item.appId }))
}

</script>

<style lang="less" scoped>

</style>